有很多人遇到与我类似的问题的例子,但他们都不是我遇到的问题。
我正在运行 Visual Studio 2019 的社区版(也许这就是问题所在)。我已经使用与我安装的 Visual Studio 版本相同的用户名/密码/电子邮件创建了一个免费的 Azure 帐户(请注意,Azure 以前不支持 Core,但现在支持)。
我正在关注此Microsoft Doc,了解如何使用 Azure 创建 ASP.NET Core Web 应用程序。我已经创建了该项目,现在是“发布”网络应用程序的时候了。
看起来很简单:右键单击项目>>发布。这是第一个窗口,我应该确保突出显示“应用程序服务” ,然后单击“新建”和“创建配置文件”。

在下一个窗口中,我可以创建我的 Azure 帐户(我已经拥有)或登录。这个选项看起来很奇怪,因为我显然已经登录了。也许他们的意思是登录到 Azure?无论如何,我选择“已有帐户(登录)”,因为我有。如果我选择第一个选项来创建帐户,它会告诉我我已经有一个帐户。

接下来,它要求我登录 Microsoft Visual Studio 帐户(我已经登录该帐户 - 我的图片位于 IDE 的右上角)。无论如何我都会这样做:
接下来,我输入密码(我将省去您这个屏幕截图 - 我展示了最后一个屏幕截图来说明它希望我在我已经登录时登录 Visual Studio),然后...
没有什么。
它带我回到应用程序服务窗口。根据 Microsoft 文档,向导应继续创建资源组。
我尝试过的:
无需登录 Visual Studio 即可“发布”
无需登录 Azure 即可进入“发布”(请注意,与 Azure 帐户关联的电子邮件/密码与我的 Visual Studio 帐户相同,并且我可以访问 Azure 帐户;至少可以转到仪表板)
azure visual-studio azure-web-app-service visual-studio-2019
标题说明了一切.我似乎找不到一个完整的命令/标志/事物列表 - 我可以从命令行执行操作.
要么是我对 WiX 不了解,要么是历史上最大的巧合一再发生。
我有一个<Component/>元素。在这个组件中,我将 GUID 指定为星号..... 就像你做的那样。
<Component Id="Component_PowershellDLL"
Guid="*">
<File Source="$(var.MyProject.ProjectDir)System.Management.Automation.dll"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
(我知道我应该使用 Nuget 来访问这个 DLL,但那是另一回事了......)
当我编译时,我收到此错误消息:
Component/@Id='Component_PowershellDLL' 有一个 @Guid 值'{guid-here}',它复制了这个包中的另一个组件。
组件中的DLL是在项目的其他地方使用,但它所处的地方是在“MyProject的”文件夹(因此,(var.MyProject.ProjectDir))。
我不会当我摆脱了明星的,只是放在一个普通的旧的Guid得到错误。
任何人都可以对此有所了解吗?我的印象是,当使用星号时,它只会生成一个新的 Guid。那么它生成的 Guid 怎么会出现在项目的其他地方呢?
我知道了。我确实将组件安装的 DLL 保留在同一解决方案中(MyProject在所示示例中)。
因此,是的,通过宏在组件中引用的 DLL 存在于 Visual Studio 解决方案中。
我想如果他们有不同的 GUID(位于另一个项目中的 DLL 和我放在安装所述 DLL 的组件中的 GUID),那么 Windows Installer 将有两个相同的 GUID......事情。
谢谢你们。你们是我进军 Windows Installer 世界的真正帮手。
@PhileDW 我把你的书放在我身边,但我还没有时间真正深入了解它。
我有一个 Inno Setup 脚本。
在这个 Inno Setup 脚本中,有一个#define名为InstallParameters. 这是程序的命令行参数所在的位置。命令行参数将是四个标志中的任何一个,/v, /i, /a,/c后跟参数。例如,这里是一个平均输入InstallParameters:
#define InstallParameters "/v Local Area Connection /i 111.11.11.11"
Run Code Online (Sandbox Code Playgroud)
或者:
#define InstallParameters "/a Device Name /c Customer Name"
Run Code Online (Sandbox Code Playgroud)
或者:
#define InstallParameters "/v Local Area Connection /i 111.11.11.11 /a Device Name /c Customer Name"
Run Code Online (Sandbox Code Playgroud)
或者标志后跟参数的任意组合。
我想做的是将四个参数本身变成变量,将#define.
这是我的理想(请注意,用于组合 的语法#define完全是虚构的):
#define Connection "/v Local Area Connection"
#define IPaddress "/i 1.1.1.1"
#define DeviceName "/a Device Name"
#define CustName …Run Code Online (Sandbox Code Playgroud) wix ×2
azure ×1
bootstrapper ×1
burn ×1
components ×1
guid ×1
inno-setup ×1
installation ×1
macros ×1