小编Dro*_*onz的帖子

在构建安装项目时,如何阻止SQL Server 2008 R2尝试安装某个软件包?

我有一个WPF Linq-to-SQL项目,我一直在使用MS Visual Studio 2008开发.我运行SQL Server 2008,最近将其升级到R2版本.现在,每当我构建我的SETUP项目(而不是应用程序本身)时,构建过程会导致窗口启动:

SQL Server 2008 R2 Management Studio请等待Windows配置SQL Server 2008 R2 Management Studio

在进度条和延迟之后,抱怨:"您尝试使用的功能是在不可用的网络资源上." 有一个指向源的选项,它显然试图使用不存在的c:\ 687b0370badbfcf47c\x86\setup \.

如果我在此时单击"取消",则会显示"无法找到产品SQL Server 2008 R2 Management Studio的安装包.请使用安装包"sql_ssms.msi"的有效副本再次尝试安装."

然后我开始观察进度条向后看,然后它重新开始.此时,安装版本正在等待尝试为我的项目构建MSI.有一次这导致Visual Studio崩溃.其他时候,我已经能够告诉进度条窗口取消,然后我的安装项目构建正常.

所以我的问题是:

  • 当我尝试构建设置时,如何让它停止启动不需要的安装程序尝试?

  • 为什么它首先这样做?

visual-studio-2008 linq-to-sql sql-server-2008-r2 visual-studio-setup-proje

13
推荐指数
2
解决办法
5566
查看次数

如何在WPF Datagrids中修复"双向绑定需要路径或XPath"异常?

这个问题的背景/上下文: 我有一个WPF桌面应用程序.它使用LINQ to SQL连接到其SQL数据库,并在WPF Datagrids中显示其数据.它的工作还算不错,但性能是一个问题,因为LINQ可能是致命的慢,所以我一直在交换我的逻辑和UI控制从LINQ数据库环境远尽可能,而是它们加载到本地变量,这是非常相似LINQ对象,大大提高了性能.

问题: 当我测试我的Datagrids时,我现在得到一个新的异常" 双向绑定需要Path或XPath. "当我尝试编辑一个Datagrid的某个(整数)列中的值时,尽管编辑字符串列已经工作得很好.我不明白为什么我会这样做,或者该怎么做.

因此,当datagrid.datacontext设置为LINQ实体关联时,它可以工作,但只有当它设置为普通对象列表时才能正常工作.我尝试将列表更改为ObservableCollection,但这没有明显的效果.

我已经在这里和其他网站上查看过十几个不同的相关问题,但我没有看到任何似乎有帮助的问题.

目前我有:

<DataGrid Margin="12,110,12,0" x:Name="dgDays" ItemsSource="{Binding}" 
                 Height="165" VerticalAlignment="Top" MinHeight="0" 
                 AutoGenerateColumns="False"
                 SelectionChanged="dgDays_SelectionChanged">
Run Code Online (Sandbox Code Playgroud)

...

<DataGrid.Columns>
            <DataGridComboBoxColumn Width="80" Header="Cook" x:Name="_DailyCookCombo" SelectedItemBinding="{Binding sCook}"/>
            <DataGridComboBoxColumn Width="80" Header="Eat" x:Name="_DailyDayCombo" SelectedItemBinding="{Binding sDay}"/>
            <DataGridTextColumn Width="52" Header="Prot" Binding="{Binding Protein}" />
            <DataGridTextColumn Width="52" Header="Carb" Binding="{Binding Carb}" />
            <DataGridTextColumn Width="52" Header="Fat" Binding="{Binding Fat}" />
            <DataGridTextColumn Width="62" Header="Prot %" Binding="{Binding ProteinPercent}" />
            <DataGridTextColumn Width="62" Header="Carb %" Binding="{Binding CarbPercent}" />
            <DataGridTextColumn Width="62" Header="Fat %" Binding="{Binding FatPercent}" />
            <DataGridTextColumn Width="116" Header="non PFW meals" Binding="{Binding …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf wpfdatagrid 2-way-object-databinding

13
推荐指数
3
解决办法
2万
查看次数

如何回答 keytool 提出的 Java 密钥库问题?

当使用 Java 的 keytool 程序创建密钥库文件时,它会询问一系列有关与密钥库关联的身份的问题。其中包括一些我想知道它们是否是必需的、它们的用途(如果有的话)、人们将如何看到/使用它们,以及它们应该从什么上下文中得到回答。例如:

“你的名字和姓氏是什么?” 所以我想知道,他们指的是谁?如果我们的团队有一位 IT 技术人员为我们运行这个程序,他应该留下自己的名字吗?应该是我们开发团队或部门的经理吗?如果我们在一家公司工作,而留下名字的人离开了公司,我们该怎么办?

“你们的组织单位叫什么名字?” 如果没有怎么办?

“你们的组织叫什么名字?” 如果我只是一个制作程序的人怎么办?

“这个单位的两个字母的国家代码是什么?” 什么单位?这有什么作用呢?我可以将其留空吗?

此外,根据指定人员提供此信息有哪些相关协议、权利和责任?或者这些只是想在我们想要关联这些信息时提供帮助,如果它们看起来不相关或不想要,我们可以选择将其中任何一个留空?

如果它是 Android Play 商店的移动应用程序,答案是否会有所不同?

java registration keytool google-play android-keystore

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

在Visual Studio中禁用Live Player

我想在Visual Studio中禁用Xamarin Live播放器.

在此输入图像描述

Live Player不使用我,因为我的应用程序使用CustomRenderers和Live Player无法做的其他事情.

总是选择正确的设备进行调试是非常耗时的.而且我经常不小心使用播放器.

有没有办法完全卸载,或者如果没有,禁用Xamarin Live Player?

xamarin visual-studio-2017

4
推荐指数
1
解决办法
831
查看次数

为什么gcc警告我这条线是"误导性地缩进,就好像它被"一个if?

警告是:

/home/dronz/OF/apps/myApps/HexMap/src/HexMap.cpp:48:5: warning: this ‘if’ clause 
does not guard... [-Wmisleading-indentation]
     if (toHexSize < 1)
     ^~
/home/dronz/OF/apps/myApps/HexMap/src/HexMap.cpp:51:2: note: ...this statement, 
but the latter is misleadingly indented as if it were guarded by the ‘if’
  MapTileSizeAtZoom = toHexSize;
  ^~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

代码是这样的:

if (toHexSize < 1)
    toHexSize = 1;

MapTileSizeAtZoom = toHexSize;
Run Code Online (Sandbox Code Playgroud)

如果MapTileSizeAtZoom ...线条缩进更多,我可以看到它有误导性,但它与'if'处于相同的缩进水平,所以这对我来说似乎是正确的.

我想也许有额外的空间和/或标签浮动,但我在文本后删除了任何不必要的空白字符,这没有任何区别.

我想也许它被空白线弄糊涂了,但把它取出并没有停止警告.

此外,在相同的.cpp文件之前是这段代码,它没有警告:

if (toHexSize < 1)
    toHexSize = 1;

HexInfo centerOnHex;
if (SelectedHex.type != -1)
Run Code Online (Sandbox Code Playgroud)

所以我想知道为什么它会警告一个(根本),以及它为什么不警告另一个,这是否是一个gcc bug,以及如何避免它?

...

编辑:@NeilButterworth让我发布"所有代码".(似乎没有相关性,但他有2.5万的声誉,所以我在下面添加了它.)

#include "HexMap.h"
#include <algorithm>
#include <cmath>

//-------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

c++ gcc-warning

3
推荐指数
1
解决办法
4986
查看次数

WPF ListView选择无法在加载时清除?

我查看了几个相关的答案,并确定我可以通过设置lstData.SelectedIndex = -1以编程方式清除选择; 但是,当我在启动时设置数据上下文后立即执行此操作时,它会以某种方式工作并设置为选择列表中的第一个元素.

我也尝试将设置添加到XAML中,-1实际上是Visual Studio的默认值,但除非您设置它,否则它实际上不在XAML中.即:

    <ListView Margin="6,6,6,203" 
        IsSynchronizedWithCurrentItem="True" 
        x:Name="lstData" 
        ItemsSource="{Binding}" 
        SelectionChanged="lstData_SelectionChanged" 
        HorizontalContentAlignment="Right"
        ItemContainerStyle="{StaticResource ItemContStyle}"  
        SelectedIndex="-1">
Run Code Online (Sandbox Code Playgroud)

但这也没有效果.

另外,令人着迷的是,如果我把lstData.SelectedIndex = 3; 在我的LoadData方法中,它将在选择第三个成员时开始设置.

这是我的相关窗口加载代码:

    public Window1()
    {
        InitializeComponent(); 

        // Set start and end dates to day after tomorrow, and 
        // the next day, by default:
        StartDate = DateTime.Now.AddDays(1);
        EndDate = StartDate.AddDays(2);
        txtStartDate.Text = StartDate.ToShortDateString();
        txtEndDate.Text = EndDate.ToShortDateString();
        LoadData();
    }

    public void LoadData()
    {
        App.RefreshMembers();

        App.CalculateNeededMeals(StartDate, EndDate);

        // Bind the ListBox to our ObserveableCollection
        LayoutRoot.DataContext = 
          App.db.PFW_Members.OrderBy("FullName",true).OrderBy("CancelDate",true);
        lstData.SelectedIndex = -1;
    }
Run Code Online (Sandbox Code Playgroud)

并且在其他情况下调用LoadData(),在这种情况下,它会清除选择.只是不是窗口第一次加载.好像,有一些初始化线程没有真正完成并且如果在启动时为-1则将其设置为0.

哦,是的,我确实有一个选择更改处理程序,但它不会更改选择,即: …

wpf listview selecteditem selection

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

修复WPF对话窗口留下的显示垃圾?

在我的WPF应用程序中,我有WPF窗口可以打开其他WPF对话框窗口,我这样做如下:

PickForEveryone PickForEveryoneWindow = new PickForEveryone(sSelRecipe, selMRM.sDay, selMRM.MealTypeID);
PickForEveryoneWindow.Owner = this;
PickForEveryoneWindow.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

PickForEveryone定义为:

public partial class PickForEveryone : Window
Run Code Online (Sandbox Code Playgroud)

<Window x:Class="PFWb0.PickForEveryone"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
 ShowInTaskbar="False"
 Title="Pick Recipe For All" Height="536" Width="441" 
 WindowStartupLocation="CenterOwner">
Run Code Online (Sandbox Code Playgroud)

并包含一个带有DataGrid的网格和几个按钮和复选框.

哪个在我的开发计算机上运行良好.但是,当对话框窗口关闭时,我的客户端一直看到对话框窗口将其显示的一部分留在父窗口顶部的可视垃圾上.也就是说,当ShowDialog()返回时,只有部分窗口会展开.

我尝试添加this.InvalidateVisual(); 在上面的代码下面,但它没有解决问题.

我还看到了一个建议(对于另一种WPF显示问题)调用OnRender()强制重绘,但OnRender需要一个类型为DrawingContext的参数,我不知道如何获取.

所以,我问是否有人知道如何首先解决显示问题,或者如何通过让WPF重绘窗口来恢复它.

更新:正如下面对建议答案的评论中所见,我仍然没有适用于我客户端计算机的解决方案,而且我的解决方法(让窗户相互躲闪)已经不够了.唯一有效的方法是最小化和最大化污染的底层窗口.

wpf dialog redraw

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

修复WPF DataGrid列标题被截断?

在我的WPF应用程序中,我使用DataGrid,当我的列标题标签文本接近列的宽度时,列标题文本的右侧部分被标题右侧的空白区域截断区域,就像标题右侧的内部填充,宽度为6或8像素,这似乎没有充分的理由.

我四处寻找类似的问题,看到有人提到无法改变的0,6,0,6填充值,但我不知道他们是否在谈论我所看到的同样的事情.

无论如何,我会喜欢知道解决方法的人让我知道它是什么.

谢谢!

format wpf formatting truncation

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

为什么ProgressBar.SetValue使用有效值抛出ArgumentException?

我正在使用WPF的ProgressBar对象,它具有Value属性,我可以传递一个常量的int或十进制值,它不会抱怨,但如果我传递一个float(或int或string)变量值,它会barfs一个ArgumentException(例如"Message='0.02380952' is not a valid value for property 'Value'.")在我身上,这对我来说似乎是荒谬的,让我难过.我跟随的MS示例使用常量浮点值.然而,MS文档对Value属性的引用表示它是一个int,这似乎是错误的,因为我可以将它传递给常量.1或.5并获得正确的行为,而我的MS示例使用0和1以及最小值和最大值.那么,我需要做什么呢?

我的代码:

XAML:

<ProgressBar x:Name="prgProgress" Width="200" Height="20" Minimum="0" Maximum="100" />
Run Code Online (Sandbox Code Playgroud)

C#:

float numMems = ListToShow.Count; 
float numDone = 0.0f;
int fracDone = 0;
string sProgress = "0%";
foreach (RAM_Member mem in ListToShow)
{
    if (isCanceled == true) break;
    mem.CalculateValues();
    numDone++;
    fracDone = (int)(100.0 * numDone / numMems);
    sProgress = (100 * numDone / numMems).ToString("0.") + "%";
    Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate { prgProgress.SetValue(ProgressBar.ValueProperty, fracDone); }, null);
    Dispatcher.BeginInvoke(DispatcherPriority.Background, (SendOrPostCallback)delegate { …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml argumentexception progress-bar

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

如何在源代码中的一个位置替换配置文件数据库链接?(asp.net/razor)

我有一个ASP.NET/Razor 3 Web应用程序,它通过MS EntityFramework使用SQL Server数据库.

如果/当我想要更改数据库连接字符串时,例如更改密码或指向其他数据库(例如test vs live),则需要在项目的三个不同XML配置文件中的大约七个位置替换该字符串(app.config,web.config和app.release.config),这是一个容易出错的痛苦.

更糟糕的是,未处理异常的默认Web服务器行为可能包括向Web用户显示配置文件的各个部分,这实际上导致Web服务器显示通过Web显示数据库路径和密码的行.不好.

出于这两个原因,并且因为这不是任何人都可以编辑服务器上的配置文件的产品(任何变化都很多,也可能是一个构建操作),我更喜欢拥有数据库连接信息编译到Web应用程序中并从代码而不是配置文件加载,并且能够执行此操作,以便在我想更改数据库信息时,我可以在一个地方而不是七个地方执行此操作.

我怎么做到这一点?

connection-string web-config razor asp.net-mvc-3

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