在 Visual Studio 发布过程中创建 dll

问题描述 投票:0回答:1

为了发布一个完整的 C# Asp.NET Web Forms 项目,我成功地执行了发布过程,但是在 roslyn 文件夹下创建了 4 个 .exe 文件,它们不被托管公司接受。我怎样才能创建一个 dll 文件而不是一个 exe 文件?

Properties - Application / Output Type = Class Library 

Properties - Application / Startup Object = (Not set) 

Properties - Build - Output / Generate Serialization assembly = Off 

Properties - Build - Output - Advanced / Debugging information = None

我在 ChatGPT 的帮助下将当前设置带到了这一点,但它不断地创建一个 exe 文件。

c# asp.net visual-studio webforms publish
1个回答
0
投票

我会做一个测试发布到本地文件夹。这样您就可以 100% 测试/检查/查看是否包含 .exe 文件(不应该包含)。

但是,如果经过上面简单的测试呢?

然后我建议您“删除”Roslyn 编译器扩展。

所以,项目->管理nuget包。

你想删除这2个:

现在,打开 bin 文件夹,然后关闭项目。

删除该 bin 文件夹中的所有内容。

重新打开,并进行重建解决方案。

作为建议的步骤,您最好创建一个名为 Mycode 的新文件夹,并将所有代码模块(如果有的话)从 App_Code 移动到名为 MyCode 的文件夹中。

这样做的原因是,当您构建 hte 网站应用程序时,所有内容都被编译并仅作为 .dll 输出到 bin 文件夹。然而,根据需要,app_code 中的某些文件仍将由 IIS 编译,而您不希望这种情况发生。

您还想确保 MyCode 中的每个代码文件都设置为:

但是,您很可能没有或没有使用 Roslyn 编译器,因此您可能不需要上述内容。

如前所述,在执行上述任何操作之前,先发布到本地文件夹,例如 c: esting\web。

查看生成的发布网站,并检查 bin 文件夹。

删除了 rosylin 编译器扩展,则不应存在 .exe 文件。

并且,您“可能”会收到一些编译错误,在大多数情况下,如果您的源代码包含一些“假设”或“依赖”这些编译器扩展的代码。

出于这个非常重要的原因,我建议您将 app_code 文件移出该文件夹,因为在重新构建时,您很可能会在构建时错过一些编译错误,因为 app_code 中的代码通常可以而且仍然会是由 IIS 编译,而不是 VS,这是您想避免的问题。

© www.soinside.com 2019 - 2024. All rights reserved.