小编Mic*_*ter的帖子

程序兼容性助理认为我的应用程序是安装程序

我在Win 7 RTM x64上创建了一个.NET C#WinForms应用程序,假设我已经调用了DataInstaller.

当我在调试器之外运行这个程序时(这只是一个没有功能的空表单),它可以正常工作,直到我关闭表单.然后,我从程序兼容性助手那里收到一条消息:

此程序可能未正确安装

然后,我可以选择使用推荐的设置重新安装,或者说安装确实按预期工作.

如果我将应用程序命名为"DataThingy",这不是问题,我想这与程序调用*Setup获得UAC屏蔽图标的方式有关.

我假设我可以将一些简单的东西放在应用程序清单中以防止这种情况发生?

我不确定这是否发生在Vista上,因为我目前没有访问权限.

更改名称不是一个选项,关闭UAC不是一个选项,所以请不要建议这个!

编辑:

我的天啊.

似乎如果以下任何一种情况属实,UAC坚持:

exe名称包含单词Installer

AssemblyInfo.cs中

AssemblyTitle contains the word 'Installer'
    e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
    e.g. [assembly: AssemblyProduct("Data Installation Utility")]
Run Code Online (Sandbox Code Playgroud)

'Installer'也可以是'Setup'.

它乞丐信仰,它真的.显然,其中一位老VB6程序员已经在Redmond重新安置到UAC团队.

我仍然需要一个解决方法,我不准备接受我的应用程序不可能被称为安装程序,因为它不会触及注册表或将任何文件放在Program Files文件夹中.

我假设如果我尝试执行名为IAmAVirus.exe的应用程序,UAC会将机器置于完全锁定状态.(实际上,我不敢尝试,因为我并不完全相信我只是愚蠢)

.net c# uac manifest windows-7

43
推荐指数
1
解决办法
2万
查看次数

Silverlight DataGrid:导出到excel或csv

有没有办法可以将我的Silverlight DataGrid数据导出到excel或csv?

我在网上搜索但找不到任何例子!

非常感谢

c# asp.net silverlight datagrid

22
推荐指数
2
解决办法
5万
查看次数

在Windows 7中DropDownStyle = DropDownList时,ComboBox.SelectedValue与显示的文本不匹配

假设我们在Windows应用程序中有以下代码:

ComboBox comboBox = new ComboBox()
{
    AutoCompleteMode = AutoCompleteMode.SuggestAppend,
    AutoCompleteSource = AutoCompleteSource.ListItems,
    DataSource = new string[] { "", "Ark", "Boat", "Bucket" },
    DropDownStyle = ComboBoxStyle.DropDownList
};
this.Controls.Add(comboBox);

TextBox textBox = new TextBox()
{
    Left = comboBox.Right,
    Top = comboBox.Top,
    ReadOnly = true
};
textBox.DataBindings.Add("Text", comboBox, "SelectedValue");
this.Controls.Add(textBox);
Run Code Online (Sandbox Code Playgroud)

这里没有魔法,只是ComboBox绑定到一个字符串列表.该TextBox显示SelectedValueComboBox.

当我在" ComboBox标签"中输入"Bucket"时,我会遇到意外行为.由于某种原因,ComboBox显示"船"但TextBox显示"桶".我希望他们都能显示"Bucket".

如果我更改DropDownStyleDropDown,它的行为与预期一致,但我不希望用户能够键入他们想要的任何内容.他们应该只能输入列表中的项目.

更有趣的是,在输入"Bucket"并跳出标签后,如果我再次输入"Bucket",它将同时显示"Bucket".如果我进行第三次尝试,它将返回"船",ComboBox而"Bucket"则返回"TextBox".所以看起来它正在骑自行车穿过所有的B.

在我最近从XP升级到Windows 7之前,我没有注意到这一点.我不明白这与此有什么关系,但无论如何我都把它丢掉了.

如果这种行为是正确的,有人能告诉我我应该做些什么来实现我预期的行为吗?

UPDATE 这似乎这因为预计在Windows XP模式与Windows …

.net data-binding combobox windows-7 winforms

12
推荐指数
2
解决办法
1万
查看次数

C#如何以编程方式更改播放设备

如何以编程方式更改vista/win 7系统上的默认音频设备?使用C#还是Win API调用?

c# audio playback windows-7

9
推荐指数
1
解决办法
2万
查看次数

即使设置了权限也无法写入 Android 外部存储

在我使用 Xamarin Forms 的 Android 10.0 (Q) 应用程序中,我已在清单中正确设置

<?xml version="1.0" encoding="utf-8"?>
<manifest **** />
    <application *** ></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
Run Code Online (Sandbox Code Playgroud)

我已通过代码授予权限

var permission = ActivityCompat.CheckSelfPermission(MainActivity.Instance, Manifest.Permission.WriteExternalStorage);

if (permission != Permission.Granted)
{
    ActivityCompat.RequestPermissions(
      MainActivity.Instance, 
      new[] 
      { 
         Manifest.Permission.WriteExternalStorage, 
         Manifest.Permission.ReadExternalStorage 
      }, 1);
}
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试在我的文档或图片文件夹中创建一个文件时,我收到一个权限被拒绝错误:Java.IO.FileNotFoundException: '/storage/emulated/0/Documents/file.txt: open failed: EACCES (Permission denied)' 我错过了什么?

var folder= Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDocuments);
folder.Mkdirs();

var filePath = Path.Combine(folder.AbsolutePath, filename);

// I get a permissions error here 
using (var stream = new Java.IO.FileOutputStream(filePath))
{
     await …
Run Code Online (Sandbox Code Playgroud)

android xamarin android-permissions

6
推荐指数
1
解决办法
2859
查看次数