在没有安装PostSharp的情况下在机器上构建具有PostSharp属性的项目是否安全?

时间:2011-12-10 22:38:54

标签: msbuild postsharp

我在我的机器上安装了PostSharp,将PostSharp.dll添加到我的依赖项文件夹并构建了我的aspect属性,这是正常的。 现在我要办理登记手续。

在构建计算机或我的同事的计算机上,当他们获得最新代码但未安装PostSharp时会发生什么。

属性会被忽略吗? 或者在构建或运行期间会发生一些错误?

4 个答案:

答案 0 :(得分:1)

如果在其他开发计算机上安装了PostSharp,则还必须在构建服务器上安装它。

另见http://doc.sharpcrafters.com/postsharp-2.1/Content.aspx/PostSharp-2.1.chm/html/522bb950-5fdf-4601-b75e-7c60c8b3ae08.htm

我认为如果您尝试在未安装它的构建服务器上构建它,即使添加了dll,也会出错。

答案 1 :(得分:1)

从2.1开始,构建服务器必须安装PostSharp以及需要构建项目的任何开发人员。如果你不这样做,那么构建将失败,他们可能不会对你表现出色。 PostSharp是构建过程的一部分,这就是构建服务器上需要它的原因。

你不能忽略PostSharp。如果其他开发人员能够引用PostSharp.dll以满足类型并且实际构建它们那么它们将具有无效输出,因为它没有在最终程序集中应用方面。

我建议将PostSharp安装到源存储库中(http://doc.sharpcrafters.com/postsharp-2.1/Content.aspx/PostSharp-2.1.chm/html/41129237-a5d4-4acf-aef4-c46759ccfb4b.htm)让每个人都更容易。

答案 2 :(得分:0)

我可以确认在没有安装PostSharp的情况下,可以在没有任何错误的情况下编译具有方面属性的项目。我假设将PostSharp DLL添加为依赖项。

当然,没有后期构建处理,所有属性都将被忽略,但与PostSharp功能无关,将按预期工作。

澄清2013年1月12日:

当我使用安装程序进行安装时,其他开发人员和构建服务器能够忽略PostSharp(如中所述) http://doc.sharpcrafters.com/postsharp-2.1/Default.aspx##PostSharp-2.1.chm/html/f7b57aa1-369a-406a-8863-8b6865265a21.htm )仅在我的机器上。

然而,当在安装的子包文件夹中使用NuGet安装时(目前由PostSharp作者推荐),所有开发人员都被迫安装Starter或试用专业版

答案 3 :(得分:0)

您可以针对某些配置禁用PostSharp。

项目>设置> PostSharp

为此配置选择“禁用PostSharp”

我在这里回答了类似的问题:

Disable Postsharp in debug builds