gpt4 book ai didi

.net - 控制 .nuspec 中的代码契约引用

转载 作者:行者123 更新时间:2023-12-05 01:15:50 28 4
gpt4 key购买 nike

我正在使用代码契约(Contract)为我的项目生成附属程序集。基本上它为项目的 MyAssembly.dll 创建一个 MyAssembly.Contracts.dll。这应该放在你的程序集旁边,但不被任何应用程序引用——它只被契约(Contract)工具使用。

我试图将它包含在我的 nuget 包中,但是当我将该包安装到另一个应用程序中时,契约(Contract)程序集被包含为引用,这会产生问题。

根据.nuspec reference ,这应该就像添加一个 references 一样简单元素,但它似乎被忽略了。我目前的理论是,这是因为我使用 .csproj 替换 token ,并且它正在读取 .csproj 而不是 .nuspec 的引用。

以前有人这样做过吗?有任何想法吗?

以下是我的 .nuspec 的相关部分:

<?xml version="1.0"?>
<package>
<metadata>
<references>
<reference file="MyAssembly.dll"/>
</references>
</metadata>
<files>
<file src="bin\Release\CodeContracts\*.dll" target="lib\net45"/>
</files>
</package>

最佳答案

作为代码契约(Contract)是一个单独的和 可选 组装,我建议创建一个新的 MyPackage.CodeContracts 包 它将代码契约(Contract)程序集复制到您需要的地方。这可以在所谓的工具包中使用一个简单的 PowerShell 脚本(install.ps1 + uninstall.ps1)来完成。

这与创建 MyPackage.Sample 包的方法类似。使用基于约定的目录创建包并改为以 .nuspec 文件为目标。你会遇到更少的问题,恕我直言,这也是一个更好的解决方案。

关于.net - 控制 .nuspec 中的代码契约引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687995/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com