2016-04-11 41 views
0

所以我有一个C#应用程序,我在Visual Studio中开发。我正在使用一个非常容易安装的NuGet。 Newtonsoft JSON。我只是有一个简单的问题,因为我是windows开发新手。C#NuGets安装

我知道在项目中使用某些东西时,您还需要将dll或lib添加到安装程序中,以便项目使用该库。 NuGet的情况是否如此?我需要将Newtonsoft JSON添加到我的安装程序中吗?

即时通讯使用Visual Studio 2015如果重要。

+3

您的安装程序需要确保包含程序集。但是那里有很多安装者。你在用什么? –

+0

Installsheild。所以我需要对Installsheild进行一些配置以添加该nuget?或者它产生的dll/lib – KotaBear233

+0

我搜索了一些教程,为我的项目添加了一个dll,但运气不大。我发现的所有教程都非常陈旧。你有什么建议吗? – KotaBear233

回答

1

刚刚发表评论,但还不能。

通常,通过Nuget将项目包添加到项目中会处理所有必要的引用。另外,如果您在项目中查看您的参考列表,并右键单击有问题的程序集(在这种情况下为Newtonsoft.JSON),并转至它的属性,您将看到一个选项“复制本地” 。

如果设置为true,如描述所述,“引用将被复制到输出目录”。

因此,无论您的.exe/.dll/lib在哪里输出,都应该有一个Newtonsoft.JSON的副本。

编辑:

至于你的问题是相当混乱,我能说的最好的是,如果你通过的NuGet添加软件包,它不会被建成您的应用程序,它仍然是一个单独的DLL文件需要包含在您的安装程序列表中。

+0

正确,但OP正在讨论*安装程序* - 而不仅仅是编译应用程序。 –

+1

这似乎一般不相关。如果他没有把项目的输出放在安装程序中,那么他在那里放什么?假设安装程序正在使用项目的输出作为其文件列表,那么将此属性设置为true将确保所讨论的DLL的副本位于该目录中。 – pay

+1

问题是关于安装程序的* all *。据推测OP可以运行他的应用程序。因此,程序集大概是在本地运行应用程序时需要的地方。安装人员是完全不同的故事,是OP问题的关键。 –

-1

这取决于您使用的安装程序。有些会让你选择文件夹并自动检测,有些则不会。

0

您不需要为您的installshield项目安装nuget软件包。 您需要在您的安装项目中引用您的依赖项。